home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 24 / Amiga Format AFCD24 (Feb 1998, Issue 108).iso / -in_the_mag- / emulation / macos / cpu68000.cpt.hqx / CPU68000 / CPU / cpuC.c < prev    next >
C/C++ Source or Header  |  1997-06-16  |  33KB  |  1,053 lines

  1. #include "sysconfig.h"
  2. #include "sysdeps.h"
  3. #include "config.h"
  4. #include "options.h"
  5. #include "machdep/m68k.h"
  6. #include "my_memory.h"
  7. #include "custom.h"
  8. #include "readcpu.h"
  9. #include "newcpu.h"
  10. #include "compiler.h"
  11. #include "cputbl.h"
  12. #if !defined (MEMFUNCS_DIRECT_REQUESTED) || defined (DIRECT_MEMFUNCS_SUCCESSFUL)
  13. void REGPARAM2 CPU_OP_NAME(_c000)(uae_u32 opcode) /* AND */
  14. {
  15.     uae_u32 srcreg = (opcode & 7);
  16.     uae_u32 dstreg = (opcode >> 9) & 7;
  17. {{    uae_s8 src = m68k_dreg(regs, srcreg);
  18. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  19.     src &= dst;
  20.     VFLG = CFLG = 0;
  21.     ZFLG = ((uae_s8)(src)) == 0;
  22.     NFLG = ((uae_s8)(src)) < 0;
  23.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
  24. }}}}
  25. void REGPARAM2 CPU_OP_NAME(_c010)(uae_u32 opcode) /* AND */
  26. {
  27.     uae_u32 srcreg = (opcode & 7);
  28.     uae_u32 dstreg = (opcode >> 9) & 7;
  29. {{    uaecptr srca = m68k_areg(regs, srcreg);
  30.     uae_s8 src = get_byte(srca);
  31. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  32.     src &= dst;
  33.     VFLG = CFLG = 0;
  34.     ZFLG = ((uae_s8)(src)) == 0;
  35.     NFLG = ((uae_s8)(src)) < 0;
  36.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
  37. }}}}
  38. void REGPARAM2 CPU_OP_NAME(_c018)(uae_u32 opcode) /* AND */
  39. {
  40.     uae_u32 srcreg = (opcode & 7);
  41.     uae_u32 dstreg = (opcode >> 9) & 7;
  42. {{    uaecptr srca = m68k_areg(regs, srcreg);
  43.     uae_s8 src = get_byte(srca);
  44. {    m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
  45. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  46.     src &= dst;
  47.     VFLG = CFLG = 0;
  48.     ZFLG = ((uae_s8)(src)) == 0;
  49.     NFLG = ((uae_s8)(src)) < 0;
  50.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
  51. }}}}}
  52. void REGPARAM2 CPU_OP_NAME(_c020)(uae_u32 opcode) /* AND */
  53. {
  54.     uae_u32 srcreg = (opcode & 7);
  55.     uae_u32 dstreg = (opcode >> 9) & 7;
  56. {{    m68k_areg(regs, srcreg) -= areg_byteinc[srcreg];
  57. {    uaecptr srca = m68k_areg(regs, srcreg);
  58.     uae_s8 src = get_byte(srca);
  59. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  60.     src &= dst;
  61.     VFLG = CFLG = 0;
  62.     ZFLG = ((uae_s8)(src)) == 0;
  63.     NFLG = ((uae_s8)(src)) < 0;
  64.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
  65. }}}}}
  66. void REGPARAM2 CPU_OP_NAME(_c028)(uae_u32 opcode) /* AND */
  67. {
  68.     uae_u32 srcreg = (opcode & 7);
  69.     uae_u32 dstreg = (opcode >> 9) & 7;
  70. {{    uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)nextiword();
  71.     uae_s8 src = get_byte(srca);
  72. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  73.     src &= dst;
  74.     VFLG = CFLG = 0;
  75.     ZFLG = ((uae_s8)(src)) == 0;
  76.     NFLG = ((uae_s8)(src)) < 0;
  77.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
  78. }}}}
  79. void REGPARAM2 CPU_OP_NAME(_c030)(uae_u32 opcode) /* AND */
  80. {
  81.     uae_u32 srcreg = (opcode & 7);
  82.     uae_u32 dstreg = (opcode >> 9) & 7;
  83. {{    uaecptr srca = get_disp_ea(m68k_areg(regs, srcreg));
  84. {    uae_s8 src = get_byte(srca);
  85. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  86.     src &= dst;
  87.     VFLG = CFLG = 0;
  88.     ZFLG = ((uae_s8)(src)) == 0;
  89.     NFLG = ((uae_s8)(src)) < 0;
  90.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
  91. }}}}}
  92. void REGPARAM2 CPU_OP_NAME(_c038)(uae_u32 opcode) /* AND */
  93. {
  94.     uae_u32 dstreg = (opcode >> 9) & 7;
  95. {{    uaecptr srca = (uae_s32)(uae_s16)nextiword();
  96.     uae_s8 src = get_byte(srca);
  97. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  98.     src &= dst;
  99.     VFLG = CFLG = 0;
  100.     ZFLG = ((uae_s8)(src)) == 0;
  101.     NFLG = ((uae_s8)(src)) < 0;
  102.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
  103. }}}}
  104. void REGPARAM2 CPU_OP_NAME(_c039)(uae_u32 opcode) /* AND */
  105. {
  106.     uae_u32 dstreg = (opcode >> 9) & 7;
  107. {{    uaecptr srca = nextilong();
  108.     uae_s8 src = get_byte(srca);
  109. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  110.     src &= dst;
  111.     VFLG = CFLG = 0;
  112.     ZFLG = ((uae_s8)(src)) == 0;
  113.     NFLG = ((uae_s8)(src)) < 0;
  114.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
  115. }}}}
  116. void REGPARAM2 CPU_OP_NAME(_c03a)(uae_u32 opcode) /* AND */
  117. {
  118.     uae_u32 dstreg = (opcode >> 9) & 7;
  119. {{    uaecptr srca = m68k_getpc();
  120.     srca += (uae_s32)(uae_s16)nextiword();
  121. {    uae_s8 src = get_byte(srca);
  122. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  123.     src &= dst;
  124.     VFLG = CFLG = 0;
  125.     ZFLG = ((uae_s8)(src)) == 0;
  126.     NFLG = ((uae_s8)(src)) < 0;
  127.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
  128. }}}}}
  129. void REGPARAM2 CPU_OP_NAME(_c03b)(uae_u32 opcode) /* AND */
  130. {
  131.     uae_u32 dstreg = (opcode >> 9) & 7;
  132. {{    uaecptr srca = get_disp_ea(m68k_getpc());
  133. {    uae_s8 src = get_byte(srca);
  134. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  135.     src &= dst;
  136.     VFLG = CFLG = 0;
  137.     ZFLG = ((uae_s8)(src)) == 0;
  138.     NFLG = ((uae_s8)(src)) < 0;
  139.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
  140. }}}}}
  141. void REGPARAM2 CPU_OP_NAME(_c03c)(uae_u32 opcode) /* AND */
  142. {
  143.     uae_u32 dstreg = (opcode >> 9) & 7;
  144. {{    uae_s8 src = nextibyte();
  145. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  146.     src &= dst;
  147.     VFLG = CFLG = 0;
  148.     ZFLG = ((uae_s8)(src)) == 0;
  149.     NFLG = ((uae_s8)(src)) < 0;
  150.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
  151. }}}}
  152. void REGPARAM2 CPU_OP_NAME(_c040)(uae_u32 opcode) /* AND */
  153. {
  154.     uae_u32 srcreg = (opcode & 7);
  155.     uae_u32 dstreg = (opcode >> 9) & 7;
  156. {{    uae_s16 src = m68k_dreg(regs, srcreg);
  157. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  158.     src &= dst;
  159.     VFLG = CFLG = 0;
  160.     ZFLG = ((uae_s16)(src)) == 0;
  161.     NFLG = ((uae_s16)(src)) < 0;
  162.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
  163. }}}}
  164. void REGPARAM2 CPU_OP_NAME(_c050)(uae_u32 opcode) /* AND */
  165. {
  166.     uae_u32 srcreg = (opcode & 7);
  167.     uae_u32 dstreg = (opcode >> 9) & 7;
  168. {{    uaecptr srca = m68k_areg(regs, srcreg);
  169.     uae_s16 src = get_word(srca);
  170. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  171.     src &= dst;
  172.     VFLG = CFLG = 0;
  173.     ZFLG = ((uae_s16)(src)) == 0;
  174.     NFLG = ((uae_s16)(src)) < 0;
  175.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
  176. }}}}
  177. void REGPARAM2 CPU_OP_NAME(_c058)(uae_u32 opcode) /* AND */
  178. {
  179.     uae_u32 srcreg = (opcode & 7);
  180.     uae_u32 dstreg = (opcode >> 9) & 7;
  181. {{    uaecptr srca = m68k_areg(regs, srcreg);
  182.     uae_s16 src = get_word(srca);
  183. {    m68k_areg(regs, srcreg) += 2;
  184. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  185.     src &= dst;
  186.     VFLG = CFLG = 0;
  187.     ZFLG = ((uae_s16)(src)) == 0;
  188.     NFLG = ((uae_s16)(src)) < 0;
  189.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
  190. }}}}}
  191. void REGPARAM2 CPU_OP_NAME(_c060)(uae_u32 opcode) /* AND */
  192. {
  193.     uae_u32 srcreg = (opcode & 7);
  194.     uae_u32 dstreg = (opcode >> 9) & 7;
  195. {{    m68k_areg(regs, srcreg) -= 2;
  196. {    uaecptr srca = m68k_areg(regs, srcreg);
  197.     uae_s16 src = get_word(srca);
  198. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  199.     src &= dst;
  200.     VFLG = CFLG = 0;
  201.     ZFLG = ((uae_s16)(src)) == 0;
  202.     NFLG = ((uae_s16)(src)) < 0;
  203.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
  204. }}}}}
  205. void REGPARAM2 CPU_OP_NAME(_c068)(uae_u32 opcode) /* AND */
  206. {
  207.     uae_u32 srcreg = (opcode & 7);
  208.     uae_u32 dstreg = (opcode >> 9) & 7;
  209. {{    uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)nextiword();
  210.     uae_s16 src = get_word(srca);
  211. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  212.     src &= dst;
  213.     VFLG = CFLG = 0;
  214.     ZFLG = ((uae_s16)(src)) == 0;
  215.     NFLG = ((uae_s16)(src)) < 0;
  216.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
  217. }}}}
  218. void REGPARAM2 CPU_OP_NAME(_c070)(uae_u32 opcode) /* AND */
  219. {
  220.     uae_u32 srcreg = (opcode & 7);
  221.     uae_u32 dstreg = (opcode >> 9) & 7;
  222. {{    uaecptr srca = get_disp_ea(m68k_areg(regs, srcreg));
  223. {    uae_s16 src = get_word(srca);
  224. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  225.     src &= dst;
  226.     VFLG = CFLG = 0;
  227.     ZFLG = ((uae_s16)(src)) == 0;
  228.     NFLG = ((uae_s16)(src)) < 0;
  229.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
  230. }}}}}
  231. void REGPARAM2 CPU_OP_NAME(_c078)(uae_u32 opcode) /* AND */
  232. {
  233.     uae_u32 dstreg = (opcode >> 9) & 7;
  234. {{    uaecptr srca = (uae_s32)(uae_s16)nextiword();
  235.     uae_s16 src = get_word(srca);
  236. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  237.     src &= dst;
  238.     VFLG = CFLG = 0;
  239.     ZFLG = ((uae_s16)(src)) == 0;
  240.     NFLG = ((uae_s16)(src)) < 0;
  241.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
  242. }}}}
  243. void REGPARAM2 CPU_OP_NAME(_c079)(uae_u32 opcode) /* AND */
  244. {
  245.     uae_u32 dstreg = (opcode >> 9) & 7;
  246. {{    uaecptr srca = nextilong();
  247.     uae_s16 src = get_word(srca);
  248. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  249.     src &= dst;
  250.     VFLG = CFLG = 0;
  251.     ZFLG = ((uae_s16)(src)) == 0;
  252.     NFLG = ((uae_s16)(src)) < 0;
  253.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
  254. }}}}
  255. void REGPARAM2 CPU_OP_NAME(_c07a)(uae_u32 opcode) /* AND */
  256. {
  257.     uae_u32 dstreg = (opcode >> 9) & 7;
  258. {{    uaecptr srca = m68k_getpc();
  259.     srca += (uae_s32)(uae_s16)nextiword();
  260. {    uae_s16 src = get_word(srca);
  261. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  262.     src &= dst;
  263.     VFLG = CFLG = 0;
  264.     ZFLG = ((uae_s16)(src)) == 0;
  265.     NFLG = ((uae_s16)(src)) < 0;
  266.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
  267. }}}}}
  268. void REGPARAM2 CPU_OP_NAME(_c07b)(uae_u32 opcode) /* AND */
  269. {
  270.     uae_u32 dstreg = (opcode >> 9) & 7;
  271. {{    uaecptr srca = get_disp_ea(m68k_getpc());
  272. {    uae_s16 src = get_word(srca);
  273. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  274.     src &= dst;
  275.     VFLG = CFLG = 0;
  276.     ZFLG = ((uae_s16)(src)) == 0;
  277.     NFLG = ((uae_s16)(src)) < 0;
  278.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
  279. }}}}}
  280. void REGPARAM2 CPU_OP_NAME(_c07c)(uae_u32 opcode) /* AND */
  281. {
  282.     uae_u32 dstreg = (opcode >> 9) & 7;
  283. {{    uae_s16 src = nextiword();
  284. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  285.     src &= dst;
  286.     VFLG = CFLG = 0;
  287.     ZFLG = ((uae_s16)(src)) == 0;
  288.     NFLG = ((uae_s16)(src)) < 0;
  289.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
  290. }}}}
  291. void REGPARAM2 CPU_OP_NAME(_c080)(uae_u32 opcode) /* AND */
  292. {
  293.     uae_u32 srcreg = (opcode & 7);
  294.     uae_u32 dstreg = (opcode >> 9) & 7;
  295. {{    uae_s32 src = m68k_dreg(regs, srcreg);
  296. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  297.     src &= dst;
  298.     VFLG = CFLG = 0;
  299.     ZFLG = ((uae_s32)(src)) == 0;
  300.     NFLG = ((uae_s32)(src)) < 0;
  301.     m68k_dreg(regs, dstreg) = (src);
  302. }}}}
  303. void REGPARAM2 CPU_OP_NAME(_c090)(uae_u32 opcode) /* AND */
  304. {
  305.     uae_u32 srcreg = (opcode & 7);
  306.     uae_u32 dstreg = (opcode >> 9) & 7;
  307. {{    uaecptr srca = m68k_areg(regs, srcreg);
  308.     uae_s32 src = get_long(srca);
  309. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  310.     src &= dst;
  311.     VFLG = CFLG = 0;
  312.     ZFLG = ((uae_s32)(src)) == 0;
  313.     NFLG = ((uae_s32)(src)) < 0;
  314.     m68k_dreg(regs, dstreg) = (src);
  315. }}}}
  316. void REGPARAM2 CPU_OP_NAME(_c098)(uae_u32 opcode) /* AND */
  317. {
  318.     uae_u32 srcreg = (opcode & 7);
  319.     uae_u32 dstreg = (opcode >> 9) & 7;
  320. {{    uaecptr srca = m68k_areg(regs, srcreg);
  321.     uae_s32 src = get_long(srca);
  322. {    m68k_areg(regs, srcreg) += 4;
  323. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  324.     src &= dst;
  325.     VFLG = CFLG = 0;
  326.     ZFLG = ((uae_s32)(src)) == 0;
  327.     NFLG = ((uae_s32)(src)) < 0;
  328.     m68k_dreg(regs, dstreg) = (src);
  329. }}}}}
  330. void REGPARAM2 CPU_OP_NAME(_c0a0)(uae_u32 opcode) /* AND */
  331. {
  332.     uae_u32 srcreg = (opcode & 7);
  333.     uae_u32 dstreg = (opcode >> 9) & 7;
  334. {{    m68k_areg(regs, srcreg) -= 4;
  335. {    uaecptr srca = m68k_areg(regs, srcreg);
  336.     uae_s32 src = get_long(srca);
  337. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  338.     src &= dst;
  339.     VFLG = CFLG = 0;
  340.     ZFLG = ((uae_s32)(src)) == 0;
  341.     NFLG = ((uae_s32)(src)) < 0;
  342.     m68k_dreg(regs, dstreg) = (src);
  343. }}}}}
  344. void REGPARAM2 CPU_OP_NAME(_c0a8)(uae_u32 opcode) /* AND */
  345. {
  346.     uae_u32 srcreg = (opcode & 7);
  347.     uae_u32 dstreg = (opcode >> 9) & 7;
  348. {{    uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)nextiword();
  349.     uae_s32 src = get_long(srca);
  350. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  351.     src &= dst;
  352.     VFLG = CFLG = 0;
  353.     ZFLG = ((uae_s32)(src)) == 0;
  354.     NFLG = ((uae_s32)(src)) < 0;
  355.     m68k_dreg(regs, dstreg) = (src);
  356. }}}}
  357. void REGPARAM2 CPU_OP_NAME(_c0b0)(uae_u32 opcode) /* AND */
  358. {
  359.     uae_u32 srcreg = (opcode & 7);
  360.     uae_u32 dstreg = (opcode >> 9) & 7;
  361. {{    uaecptr srca = get_disp_ea(m68k_areg(regs, srcreg));
  362. {    uae_s32 src = get_long(srca);
  363. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  364.     src &= dst;
  365.     VFLG = CFLG = 0;
  366.     ZFLG = ((uae_s32)(src)) == 0;
  367.     NFLG = ((uae_s32)(src)) < 0;
  368.     m68k_dreg(regs, dstreg) = (src);
  369. }}}}}
  370. void REGPARAM2 CPU_OP_NAME(_c0b8)(uae_u32 opcode) /* AND */
  371. {
  372.     uae_u32 dstreg = (opcode >> 9) & 7;
  373. {{    uaecptr srca = (uae_s32)(uae_s16)nextiword();
  374.     uae_s32 src = get_long(srca);
  375. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  376.     src &= dst;
  377.     VFLG = CFLG = 0;
  378.     ZFLG = ((uae_s32)(src)) == 0;
  379.     NFLG = ((uae_s32)(src)) < 0;
  380.     m68k_dreg(regs, dstreg) = (src);
  381. }}}}
  382. void REGPARAM2 CPU_OP_NAME(_c0b9)(uae_u32 opcode) /* AND */
  383. {
  384.     uae_u32 dstreg = (opcode >> 9) & 7;
  385. {{    uaecptr srca = nextilong();
  386.     uae_s32 src = get_long(srca);
  387. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  388.     src &= dst;
  389.     VFLG = CFLG = 0;
  390.     ZFLG = ((uae_s32)(src)) == 0;
  391.     NFLG = ((uae_s32)(src)) < 0;
  392.     m68k_dreg(regs, dstreg) = (src);
  393. }}}}
  394. void REGPARAM2 CPU_OP_NAME(_c0ba)(uae_u32 opcode) /* AND */
  395. {
  396.     uae_u32 dstreg = (opcode >> 9) & 7;
  397. {{    uaecptr srca = m68k_getpc();
  398.     srca += (uae_s32)(uae_s16)nextiword();
  399. {    uae_s32 src = get_long(srca);
  400. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  401.     src &= dst;
  402.     VFLG = CFLG = 0;
  403.     ZFLG = ((uae_s32)(src)) == 0;
  404.     NFLG = ((uae_s32)(src)) < 0;
  405.     m68k_dreg(regs, dstreg) = (src);
  406. }}}}}
  407. void REGPARAM2 CPU_OP_NAME(_c0bb)(uae_u32 opcode) /* AND */
  408. {
  409.     uae_u32 dstreg = (opcode >> 9) & 7;
  410. {{    uaecptr srca = get_disp_ea(m68k_getpc());
  411. {    uae_s32 src = get_long(srca);
  412. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  413.     src &= dst;
  414.     VFLG = CFLG = 0;
  415.     ZFLG = ((uae_s32)(src)) == 0;
  416.     NFLG = ((uae_s32)(src)) < 0;
  417.     m68k_dreg(regs, dstreg) = (src);
  418. }}}}}
  419. void REGPARAM2 CPU_OP_NAME(_c0bc)(uae_u32 opcode) /* AND */
  420. {
  421.     uae_u32 dstreg = (opcode >> 9) & 7;
  422. {{    uae_s32 src = nextilong();
  423. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  424.     src &= dst;
  425.     VFLG = CFLG = 0;
  426.     ZFLG = ((uae_s32)(src)) == 0;
  427.     NFLG = ((uae_s32)(src)) < 0;
  428.     m68k_dreg(regs, dstreg) = (src);
  429. }}}}
  430. void REGPARAM2 CPU_OP_NAME(_c0c0)(uae_u32 opcode) /* MULU */
  431. {
  432.     uae_u32 srcreg = (opcode & 7);
  433.     uae_u32 dstreg = (opcode >> 9) & 7;
  434. {{    uae_s16 src = m68k_dreg(regs, srcreg);
  435. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  436. {    uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
  437.     VFLG = CFLG = 0;
  438.     ZFLG = ((uae_s32)(newv)) == 0;
  439.     NFLG = ((uae_s32)(newv)) < 0;
  440.     m68k_dreg(regs, dstreg) = (newv);
  441. }}}}}
  442. void REGPARAM2 CPU_OP_NAME(_c0d0)(uae_u32 opcode) /* MULU */
  443. {
  444.     uae_u32 srcreg = (opcode & 7);
  445.     uae_u32 dstreg = (opcode >> 9) & 7;
  446. {{    uaecptr srca = m68k_areg(regs, srcreg);
  447.     uae_s16 src = get_word(srca);
  448. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  449. {    uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
  450.     VFLG = CFLG = 0;
  451.     ZFLG = ((uae_s32)(newv)) == 0;
  452.     NFLG = ((uae_s32)(newv)) < 0;
  453.     m68k_dreg(regs, dstreg) = (newv);
  454. }}}}}
  455. void REGPARAM2 CPU_OP_NAME(_c0d8)(uae_u32 opcode) /* MULU */
  456. {
  457.     uae_u32 srcreg = (opcode & 7);
  458.     uae_u32 dstreg = (opcode >> 9) & 7;
  459. {{    uaecptr srca = m68k_areg(regs, srcreg);
  460.     uae_s16 src = get_word(srca);
  461. {    m68k_areg(regs, srcreg) += 2;
  462. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  463. {    uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
  464.     VFLG = CFLG = 0;
  465.     ZFLG = ((uae_s32)(newv)) == 0;
  466.     NFLG = ((uae_s32)(newv)) < 0;
  467.     m68k_dreg(regs, dstreg) = (newv);
  468. }}}}}}
  469. void REGPARAM2 CPU_OP_NAME(_c0e0)(uae_u32 opcode) /* MULU */
  470. {
  471.     uae_u32 srcreg = (opcode & 7);
  472.     uae_u32 dstreg = (opcode >> 9) & 7;
  473. {{    m68k_areg(regs, srcreg) -= 2;
  474. {    uaecptr srca = m68k_areg(regs, srcreg);
  475.     uae_s16 src = get_word(srca);
  476. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  477. {    uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
  478.     VFLG = CFLG = 0;
  479.     ZFLG = ((uae_s32)(newv)) == 0;
  480.     NFLG = ((uae_s32)(newv)) < 0;
  481.     m68k_dreg(regs, dstreg) = (newv);
  482. }}}}}}
  483. void REGPARAM2 CPU_OP_NAME(_c0e8)(uae_u32 opcode) /* MULU */
  484. {
  485.     uae_u32 srcreg = (opcode & 7);
  486.     uae_u32 dstreg = (opcode >> 9) & 7;
  487. {{    uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)nextiword();
  488.     uae_s16 src = get_word(srca);
  489. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  490. {    uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
  491.     VFLG = CFLG = 0;
  492.     ZFLG = ((uae_s32)(newv)) == 0;
  493.     NFLG = ((uae_s32)(newv)) < 0;
  494.     m68k_dreg(regs, dstreg) = (newv);
  495. }}}}}
  496. void REGPARAM2 CPU_OP_NAME(_c0f0)(uae_u32 opcode) /* MULU */
  497. {
  498.     uae_u32 srcreg = (opcode & 7);
  499.     uae_u32 dstreg = (opcode >> 9) & 7;
  500. {{    uaecptr srca = get_disp_ea(m68k_areg(regs, srcreg));
  501. {    uae_s16 src = get_word(srca);
  502. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  503. {    uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
  504.     VFLG = CFLG = 0;
  505.     ZFLG = ((uae_s32)(newv)) == 0;
  506.     NFLG = ((uae_s32)(newv)) < 0;
  507.     m68k_dreg(regs, dstreg) = (newv);
  508. }}}}}}
  509. void REGPARAM2 CPU_OP_NAME(_c0f8)(uae_u32 opcode) /* MULU */
  510. {
  511.     uae_u32 dstreg = (opcode >> 9) & 7;
  512. {{    uaecptr srca = (uae_s32)(uae_s16)nextiword();
  513.     uae_s16 src = get_word(srca);
  514. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  515. {    uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
  516.     VFLG = CFLG = 0;
  517.     ZFLG = ((uae_s32)(newv)) == 0;
  518.     NFLG = ((uae_s32)(newv)) < 0;
  519.     m68k_dreg(regs, dstreg) = (newv);
  520. }}}}}
  521. void REGPARAM2 CPU_OP_NAME(_c0f9)(uae_u32 opcode) /* MULU */
  522. {
  523.     uae_u32 dstreg = (opcode >> 9) & 7;
  524. {{    uaecptr srca = nextilong();
  525.     uae_s16 src = get_word(srca);
  526. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  527. {    uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
  528.     VFLG = CFLG = 0;
  529.     ZFLG = ((uae_s32)(newv)) == 0;
  530.     NFLG = ((uae_s32)(newv)) < 0;
  531.     m68k_dreg(regs, dstreg) = (newv);
  532. }}}}}
  533. void REGPARAM2 CPU_OP_NAME(_c0fa)(uae_u32 opcode) /* MULU */
  534. {
  535.     uae_u32 dstreg = (opcode >> 9) & 7;
  536. {{    uaecptr srca = m68k_getpc();
  537.     srca += (uae_s32)(uae_s16)nextiword();
  538. {    uae_s16 src = get_word(srca);
  539. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  540. {    uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
  541.     VFLG = CFLG = 0;
  542.     ZFLG = ((uae_s32)(newv)) == 0;
  543.     NFLG = ((uae_s32)(newv)) < 0;
  544.     m68k_dreg(regs, dstreg) = (newv);
  545. }}}}}}
  546. void REGPARAM2 CPU_OP_NAME(_c0fb)(uae_u32 opcode) /* MULU */
  547. {
  548.     uae_u32 dstreg = (opcode >> 9) & 7;
  549. {{    uaecptr srca = get_disp_ea(m68k_getpc());
  550. {    uae_s16 src = get_word(srca);
  551. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  552. {    uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
  553.     VFLG = CFLG = 0;
  554.     ZFLG = ((uae_s32)(newv)) == 0;
  555.     NFLG = ((uae_s32)(newv)) < 0;
  556.     m68k_dreg(regs, dstreg) = (newv);
  557. }}}}}}
  558. void REGPARAM2 CPU_OP_NAME(_c0fc)(uae_u32 opcode) /* MULU */
  559. {
  560.     uae_u32 dstreg = (opcode >> 9) & 7;
  561. {{    uae_s16 src = nextiword();
  562. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  563. {    uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
  564.     VFLG = CFLG = 0;
  565.     ZFLG = ((uae_s32)(newv)) == 0;
  566.     NFLG = ((uae_s32)(newv)) < 0;
  567.     m68k_dreg(regs, dstreg) = (newv);
  568. }}}}}
  569. void REGPARAM2 CPU_OP_NAME(_c100)(uae_u32 opcode) /* ABCD */
  570. {
  571.     uae_u32 srcreg = (opcode & 7);
  572.     uae_u32 dstreg = (opcode >> 9) & 7;
  573. {{    uae_s8 src = m68k_dreg(regs, srcreg);
  574. {    uae_s8 dst = m68k_dreg(regs, dstreg);
  575. {    uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (XFLG ? 1 : 0);
  576.     uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0);
  577.     uae_u16 newv;
  578.     if (newv_lo > 9) { newv_lo +=6; }
  579.     newv = newv_hi + newv_lo;    CFLG = XFLG = (newv & 0x1F0) > 0x90;
  580.     if (CFLG) newv += 0x60;
  581.     if (((uae_s8)(newv)) != 0) ZFLG = 0;
  582.     NFLG = ((uae_s8)(newv)) < 0;
  583. {    int flgs = ((uae_s8)(src)) < 0;
  584.     int flgo = ((uae_s8)(dst)) < 0;
  585.     int flgn = ((uae_s8)(newv)) < 0;
  586.     VFLG = (flgs != flgo) && (flgn != flgo);
  587.     m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
  588. }}}}}}
  589. void REGPARAM2 CPU_OP_NAME(_c108)(uae_u32 opcode) /* ABCD */
  590. {
  591.     uae_u32 srcreg = (opcode & 7);
  592.     uae_u32 dstreg = (opcode >> 9) & 7;
  593. {{    m68k_areg(regs, srcreg) -= areg_byteinc[srcreg];
  594. {    uaecptr srca = m68k_areg(regs, srcreg);
  595.     uae_s8 src = get_byte(srca);
  596. {    m68k_areg(regs, dstreg) -= areg_byteinc[dstreg];
  597. {    uaecptr dsta = m68k_areg(regs, dstreg);
  598.     uae_s8 dst = get_byte(dsta);
  599. {    uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (XFLG ? 1 : 0);
  600.     uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0);
  601.     uae_u16 newv;
  602.     if (newv_lo > 9) { newv_lo +=6; }
  603.     newv = newv_hi + newv_lo;    CFLG = XFLG = (newv & 0x1F0) > 0x90;
  604.     if (CFLG) newv += 0x60;
  605.     if (((uae_s8)(newv)) != 0) ZFLG = 0;
  606.     NFLG = ((uae_s8)(newv)) < 0;
  607. {    int flgs = ((uae_s8)(src)) < 0;
  608.     int flgo = ((uae_s8)(dst)) < 0;
  609.     int flgn = ((uae_s8)(newv)) < 0;
  610.     VFLG = (flgs != flgo) && (flgn != flgo);
  611.     put_byte(dsta,newv);
  612. }}}}}}}}
  613. void REGPARAM2 CPU_OP_NAME(_c110)(uae_u32 opcode) /* AND */
  614. {
  615.     uae_u32 srcreg = ((opcode >> 9) & 7);
  616.     uae_u32 dstreg = opcode & 7;
  617. {{    uae_s8 src = m68k_dreg(regs, srcreg);
  618. {    uaecptr dsta = m68k_areg(regs, dstreg);
  619.     uae_s8 dst = get_byte(dsta);
  620.     src &= dst;
  621.     VFLG = CFLG = 0;
  622.     ZFLG = ((uae_s8)(src)) == 0;
  623.     NFLG = ((uae_s8)(src)) < 0;
  624.     put_byte(dsta,src);
  625. }}}}
  626. void REGPARAM2 CPU_OP_NAME(_c118)(uae_u32 opcode) /* AND */
  627. {
  628.     uae_u32 srcreg = ((opcode >> 9) & 7);
  629.     uae_u32 dstreg = opcode & 7;
  630. {{    uae_s8 src = m68k_dreg(regs, srcreg);
  631. {    uaecptr dsta = m68k_areg(regs, dstreg);
  632.     uae_s8 dst = get_byte(dsta);
  633. {    m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
  634.     src &= dst;
  635.     VFLG = CFLG = 0;
  636.     ZFLG = ((uae_s8)(src)) == 0;
  637.     NFLG = ((uae_s8)(src)) < 0;
  638.     put_byte(dsta,src);
  639. }}}}}
  640. void REGPARAM2 CPU_OP_NAME(_c120)(uae_u32 opcode) /* AND */
  641. {
  642.     uae_u32 srcreg = ((opcode >> 9) & 7);
  643.     uae_u32 dstreg = opcode & 7;
  644. {{    uae_s8 src = m68k_dreg(regs, srcreg);
  645. {    m68k_areg(regs, dstreg) -= areg_byteinc[dstreg];
  646. {    uaecptr dsta = m68k_areg(regs, dstreg);
  647.     uae_s8 dst = get_byte(dsta);
  648.     src &= dst;
  649.     VFLG = CFLG = 0;
  650.     ZFLG = ((uae_s8)(src)) == 0;
  651.     NFLG = ((uae_s8)(src)) < 0;
  652.     put_byte(dsta,src);
  653. }}}}}
  654. void REGPARAM2 CPU_OP_NAME(_c128)(uae_u32 opcode) /* AND */
  655. {
  656.     uae_u32 srcreg = ((opcode >> 9) & 7);
  657.     uae_u32 dstreg = opcode & 7;
  658. {{    uae_s8 src = m68k_dreg(regs, srcreg);
  659. {    uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)nextiword();
  660.     uae_s8 dst = get_byte(dsta);
  661.     src &= dst;
  662.     VFLG = CFLG = 0;
  663.     ZFLG = ((uae_s8)(src)) == 0;
  664.     NFLG = ((uae_s8)(src)) < 0;
  665.     put_byte(dsta,src);
  666. }}}}
  667. void REGPARAM2 CPU_OP_NAME(_c130)(uae_u32 opcode) /* AND */
  668. {
  669.     uae_u32 srcreg = ((opcode >> 9) & 7);
  670.     uae_u32 dstreg = opcode & 7;
  671. {{    uae_s8 src = m68k_dreg(regs, srcreg);
  672. {    uaecptr dsta = get_disp_ea(m68k_areg(regs, dstreg));
  673. {    uae_s8 dst = get_byte(dsta);
  674.     src &= dst;
  675.     VFLG = CFLG = 0;
  676.     ZFLG = ((uae_s8)(src)) == 0;
  677.     NFLG = ((uae_s8)(src)) < 0;
  678.     put_byte(dsta,src);
  679. }}}}}
  680. void REGPARAM2 CPU_OP_NAME(_c138)(uae_u32 opcode) /* AND */
  681. {
  682.     uae_u32 srcreg = ((opcode >> 9) & 7);
  683. {{    uae_s8 src = m68k_dreg(regs, srcreg);
  684. {    uaecptr dsta = (uae_s32)(uae_s16)nextiword();
  685.     uae_s8 dst = get_byte(dsta);
  686.     src &= dst;
  687.     VFLG = CFLG = 0;
  688.     ZFLG = ((uae_s8)(src)) == 0;
  689.     NFLG = ((uae_s8)(src)) < 0;
  690.     put_byte(dsta,src);
  691. }}}}
  692. void REGPARAM2 CPU_OP_NAME(_c139)(uae_u32 opcode) /* AND */
  693. {
  694.     uae_u32 srcreg = ((opcode >> 9) & 7);
  695. {{    uae_s8 src = m68k_dreg(regs, srcreg);
  696. {    uaecptr dsta = nextilong();
  697.     uae_s8 dst = get_byte(dsta);
  698.     src &= dst;
  699.     VFLG = CFLG = 0;
  700.     ZFLG = ((uae_s8)(src)) == 0;
  701.     NFLG = ((uae_s8)(src)) < 0;
  702.     put_byte(dsta,src);
  703. }}}}
  704. void REGPARAM2 CPU_OP_NAME(_c140)(uae_u32 opcode) /* EXG */
  705. {
  706.     uae_u32 srcreg = ((opcode >> 9) & 7);
  707.     uae_u32 dstreg = opcode & 7;
  708. {{    uae_s32 src = m68k_dreg(regs, srcreg);
  709. {    uae_s32 dst = m68k_dreg(regs, dstreg);
  710.     m68k_dreg(regs, srcreg) = (dst);
  711.     m68k_dreg(regs, dstreg) = (src);
  712. }}}}
  713. void REGPARAM2 CPU_OP_NAME(_c148)(uae_u32 opcode) /* EXG */
  714. {
  715.     uae_u32 srcreg = ((opcode >> 9) & 7);
  716.     uae_u32 dstreg = opcode & 7;
  717. {{    uae_s32 src = m68k_areg(regs, srcreg);
  718. {    uae_s32 dst = m68k_areg(regs, dstreg);
  719.     m68k_areg(regs, srcreg) = (dst);
  720.     m68k_areg(regs, dstreg) = (src);
  721. }}}}
  722. void REGPARAM2 CPU_OP_NAME(_c150)(uae_u32 opcode) /* AND */
  723. {
  724.     uae_u32 srcreg = ((opcode >> 9) & 7);
  725.     uae_u32 dstreg = opcode & 7;
  726. {{    uae_s16 src = m68k_dreg(regs, srcreg);
  727. {    uaecptr dsta = m68k_areg(regs, dstreg);
  728.     uae_s16 dst = get_word(dsta);
  729.     src &= dst;
  730.     VFLG = CFLG = 0;
  731.     ZFLG = ((uae_s16)(src)) == 0;
  732.     NFLG = ((uae_s16)(src)) < 0;
  733.     put_word(dsta,src);
  734. }}}}
  735. void REGPARAM2 CPU_OP_NAME(_c158)(uae_u32 opcode) /* AND */
  736. {
  737.     uae_u32 srcreg = ((opcode >> 9) & 7);
  738.     uae_u32 dstreg = opcode & 7;
  739. {{    uae_s16 src = m68k_dreg(regs, srcreg);
  740. {    uaecptr dsta = m68k_areg(regs, dstreg);
  741.     uae_s16 dst = get_word(dsta);
  742. {    m68k_areg(regs, dstreg) += 2;
  743.     src &= dst;
  744.     VFLG = CFLG = 0;
  745.     ZFLG = ((uae_s16)(src)) == 0;
  746.     NFLG = ((uae_s16)(src)) < 0;
  747.     put_word(dsta,src);
  748. }}}}}
  749. void REGPARAM2 CPU_OP_NAME(_c160)(uae_u32 opcode) /* AND */
  750. {
  751.     uae_u32 srcreg = ((opcode >> 9) & 7);
  752.     uae_u32 dstreg = opcode & 7;
  753. {{    uae_s16 src = m68k_dreg(regs, srcreg);
  754. {    m68k_areg(regs, dstreg) -= 2;
  755. {    uaecptr dsta = m68k_areg(regs, dstreg);
  756.     uae_s16 dst = get_word(dsta);
  757.     src &= dst;
  758.     VFLG = CFLG = 0;
  759.     ZFLG = ((uae_s16)(src)) == 0;
  760.     NFLG = ((uae_s16)(src)) < 0;
  761.     put_word(dsta,src);
  762. }}}}}
  763. void REGPARAM2 CPU_OP_NAME(_c168)(uae_u32 opcode) /* AND */
  764. {
  765.     uae_u32 srcreg = ((opcode >> 9) & 7);
  766.     uae_u32 dstreg = opcode & 7;
  767. {{    uae_s16 src = m68k_dreg(regs, srcreg);
  768. {    uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)nextiword();
  769.     uae_s16 dst = get_word(dsta);
  770.     src &= dst;
  771.     VFLG = CFLG = 0;
  772.     ZFLG = ((uae_s16)(src)) == 0;
  773.     NFLG = ((uae_s16)(src)) < 0;
  774.     put_word(dsta,src);
  775. }}}}
  776. void REGPARAM2 CPU_OP_NAME(_c170)(uae_u32 opcode) /* AND */
  777. {
  778.     uae_u32 srcreg = ((opcode >> 9) & 7);
  779.     uae_u32 dstreg = opcode & 7;
  780. {{    uae_s16 src = m68k_dreg(regs, srcreg);
  781. {    uaecptr dsta = get_disp_ea(m68k_areg(regs, dstreg));
  782. {    uae_s16 dst = get_word(dsta);
  783.     src &= dst;
  784.     VFLG = CFLG = 0;
  785.     ZFLG = ((uae_s16)(src)) == 0;
  786.     NFLG = ((uae_s16)(src)) < 0;
  787.     put_word(dsta,src);
  788. }}}}}
  789. void REGPARAM2 CPU_OP_NAME(_c178)(uae_u32 opcode) /* AND */
  790. {
  791.     uae_u32 srcreg = ((opcode >> 9) & 7);
  792. {{    uae_s16 src = m68k_dreg(regs, srcreg);
  793. {    uaecptr dsta = (uae_s32)(uae_s16)nextiword();
  794.     uae_s16 dst = get_word(dsta);
  795.     src &= dst;
  796.     VFLG = CFLG = 0;
  797.     ZFLG = ((uae_s16)(src)) == 0;
  798.     NFLG = ((uae_s16)(src)) < 0;
  799.     put_word(dsta,src);
  800. }}}}
  801. void REGPARAM2 CPU_OP_NAME(_c179)(uae_u32 opcode) /* AND */
  802. {
  803.     uae_u32 srcreg = ((opcode >> 9) & 7);
  804. {{    uae_s16 src = m68k_dreg(regs, srcreg);
  805. {    uaecptr dsta = nextilong();
  806.     uae_s16 dst = get_word(dsta);
  807.     src &= dst;
  808.     VFLG = CFLG = 0;
  809.     ZFLG = ((uae_s16)(src)) == 0;
  810.     NFLG = ((uae_s16)(src)) < 0;
  811.     put_word(dsta,src);
  812. }}}}
  813. void REGPARAM2 CPU_OP_NAME(_c188)(uae_u32 opcode) /* EXG */
  814. {
  815.     uae_u32 srcreg = ((opcode >> 9) & 7);
  816.     uae_u32 dstreg = opcode & 7;
  817. {{    uae_s32 src = m68k_dreg(regs, srcreg);
  818. {    uae_s32 dst = m68k_areg(regs, dstreg);
  819.     m68k_dreg(regs, srcreg) = (dst);
  820.     m68k_areg(regs, dstreg) = (src);
  821. }}}}
  822. void REGPARAM2 CPU_OP_NAME(_c190)(uae_u32 opcode) /* AND */
  823. {
  824.     uae_u32 srcreg = ((opcode >> 9) & 7);
  825.     uae_u32 dstreg = opcode & 7;
  826. {{    uae_s32 src = m68k_dreg(regs, srcreg);
  827. {    uaecptr dsta = m68k_areg(regs, dstreg);
  828.     uae_s32 dst = get_long(dsta);
  829.     src &= dst;
  830.     VFLG = CFLG = 0;
  831.     ZFLG = ((uae_s32)(src)) == 0;
  832.     NFLG = ((uae_s32)(src)) < 0;
  833.     put_long(dsta,src);
  834. }}}}
  835. void REGPARAM2 CPU_OP_NAME(_c198)(uae_u32 opcode) /* AND */
  836. {
  837.     uae_u32 srcreg = ((opcode >> 9) & 7);
  838.     uae_u32 dstreg = opcode & 7;
  839. {{    uae_s32 src = m68k_dreg(regs, srcreg);
  840. {    uaecptr dsta = m68k_areg(regs, dstreg);
  841.     uae_s32 dst = get_long(dsta);
  842. {    m68k_areg(regs, dstreg) += 4;
  843.     src &= dst;
  844.     VFLG = CFLG = 0;
  845.     ZFLG = ((uae_s32)(src)) == 0;
  846.     NFLG = ((uae_s32)(src)) < 0;
  847.     put_long(dsta,src);
  848. }}}}}
  849. void REGPARAM2 CPU_OP_NAME(_c1a0)(uae_u32 opcode) /* AND */
  850. {
  851.     uae_u32 srcreg = ((opcode >> 9) & 7);
  852.     uae_u32 dstreg = opcode & 7;
  853. {{    uae_s32 src = m68k_dreg(regs, srcreg);
  854. {    m68k_areg(regs, dstreg) -= 4;
  855. {    uaecptr dsta = m68k_areg(regs, dstreg);
  856.     uae_s32 dst = get_long(dsta);
  857.     src &= dst;
  858.     VFLG = CFLG = 0;
  859.     ZFLG = ((uae_s32)(src)) == 0;
  860.     NFLG = ((uae_s32)(src)) < 0;
  861.     put_long(dsta,src);
  862. }}}}}
  863. void REGPARAM2 CPU_OP_NAME(_c1a8)(uae_u32 opcode) /* AND */
  864. {
  865.     uae_u32 srcreg = ((opcode >> 9) & 7);
  866.     uae_u32 dstreg = opcode & 7;
  867. {{    uae_s32 src = m68k_dreg(regs, srcreg);
  868. {    uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)nextiword();
  869.     uae_s32 dst = get_long(dsta);
  870.     src &= dst;
  871.     VFLG = CFLG = 0;
  872.     ZFLG = ((uae_s32)(src)) == 0;
  873.     NFLG = ((uae_s32)(src)) < 0;
  874.     put_long(dsta,src);
  875. }}}}
  876. void REGPARAM2 CPU_OP_NAME(_c1b0)(uae_u32 opcode) /* AND */
  877. {
  878.     uae_u32 srcreg = ((opcode >> 9) & 7);
  879.     uae_u32 dstreg = opcode & 7;
  880. {{    uae_s32 src = m68k_dreg(regs, srcreg);
  881. {    uaecptr dsta = get_disp_ea(m68k_areg(regs, dstreg));
  882. {    uae_s32 dst = get_long(dsta);
  883.     src &= dst;
  884.     VFLG = CFLG = 0;
  885.     ZFLG = ((uae_s32)(src)) == 0;
  886.     NFLG = ((uae_s32)(src)) < 0;
  887.     put_long(dsta,src);
  888. }}}}}
  889. void REGPARAM2 CPU_OP_NAME(_c1b8)(uae_u32 opcode) /* AND */
  890. {
  891.     uae_u32 srcreg = ((opcode >> 9) & 7);
  892. {{    uae_s32 src = m68k_dreg(regs, srcreg);
  893. {    uaecptr dsta = (uae_s32)(uae_s16)nextiword();
  894.     uae_s32 dst = get_long(dsta);
  895.     src &= dst;
  896.     VFLG = CFLG = 0;
  897.     ZFLG = ((uae_s32)(src)) == 0;
  898.     NFLG = ((uae_s32)(src)) < 0;
  899.     put_long(dsta,src);
  900. }}}}
  901. void REGPARAM2 CPU_OP_NAME(_c1b9)(uae_u32 opcode) /* AND */
  902. {
  903.     uae_u32 srcreg = ((opcode >> 9) & 7);
  904. {{    uae_s32 src = m68k_dreg(regs, srcreg);
  905. {    uaecptr dsta = nextilong();
  906.     uae_s32 dst = get_long(dsta);
  907.     src &= dst;
  908.     VFLG = CFLG = 0;
  909.     ZFLG = ((uae_s32)(src)) == 0;
  910.     NFLG = ((uae_s32)(src)) < 0;
  911.     put_long(dsta,src);
  912. }}}}
  913. void REGPARAM2 CPU_OP_NAME(_c1c0)(uae_u32 opcode) /* MULS */
  914. {
  915.     uae_u32 srcreg = (opcode & 7);
  916.     uae_u32 dstreg = (opcode >> 9) & 7;
  917. {{    uae_s16 src = m68k_dreg(regs, srcreg);
  918. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  919. {    uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
  920.     VFLG = CFLG = 0;
  921.     ZFLG = ((uae_s32)(newv)) == 0;
  922.     NFLG = ((uae_s32)(newv)) < 0;
  923.     m68k_dreg(regs, dstreg) = (newv);
  924. }}}}}
  925. void REGPARAM2 CPU_OP_NAME(_c1d0)(uae_u32 opcode) /* MULS */
  926. {
  927.     uae_u32 srcreg = (opcode & 7);
  928.     uae_u32 dstreg = (opcode >> 9) & 7;
  929. {{    uaecptr srca = m68k_areg(regs, srcreg);
  930.     uae_s16 src = get_word(srca);
  931. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  932. {    uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
  933.     VFLG = CFLG = 0;
  934.     ZFLG = ((uae_s32)(newv)) == 0;
  935.     NFLG = ((uae_s32)(newv)) < 0;
  936.     m68k_dreg(regs, dstreg) = (newv);
  937. }}}}}
  938. void REGPARAM2 CPU_OP_NAME(_c1d8)(uae_u32 opcode) /* MULS */
  939. {
  940.     uae_u32 srcreg = (opcode & 7);
  941.     uae_u32 dstreg = (opcode >> 9) & 7;
  942. {{    uaecptr srca = m68k_areg(regs, srcreg);
  943.     uae_s16 src = get_word(srca);
  944. {    m68k_areg(regs, srcreg) += 2;
  945. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  946. {    uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
  947.     VFLG = CFLG = 0;
  948.     ZFLG = ((uae_s32)(newv)) == 0;
  949.     NFLG = ((uae_s32)(newv)) < 0;
  950.     m68k_dreg(regs, dstreg) = (newv);
  951. }}}}}}
  952. void REGPARAM2 CPU_OP_NAME(_c1e0)(uae_u32 opcode) /* MULS */
  953. {
  954.     uae_u32 srcreg = (opcode & 7);
  955.     uae_u32 dstreg = (opcode >> 9) & 7;
  956. {{    m68k_areg(regs, srcreg) -= 2;
  957. {    uaecptr srca = m68k_areg(regs, srcreg);
  958.     uae_s16 src = get_word(srca);
  959. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  960. {    uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
  961.     VFLG = CFLG = 0;
  962.     ZFLG = ((uae_s32)(newv)) == 0;
  963.     NFLG = ((uae_s32)(newv)) < 0;
  964.     m68k_dreg(regs, dstreg) = (newv);
  965. }}}}}}
  966. void REGPARAM2 CPU_OP_NAME(_c1e8)(uae_u32 opcode) /* MULS */
  967. {
  968.     uae_u32 srcreg = (opcode & 7);
  969.     uae_u32 dstreg = (opcode >> 9) & 7;
  970. {{    uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)nextiword();
  971.     uae_s16 src = get_word(srca);
  972. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  973. {    uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
  974.     VFLG = CFLG = 0;
  975.     ZFLG = ((uae_s32)(newv)) == 0;
  976.     NFLG = ((uae_s32)(newv)) < 0;
  977.     m68k_dreg(regs, dstreg) = (newv);
  978. }}}}}
  979. void REGPARAM2 CPU_OP_NAME(_c1f0)(uae_u32 opcode) /* MULS */
  980. {
  981.     uae_u32 srcreg = (opcode & 7);
  982.     uae_u32 dstreg = (opcode >> 9) & 7;
  983. {{    uaecptr srca = get_disp_ea(m68k_areg(regs, srcreg));
  984. {    uae_s16 src = get_word(srca);
  985. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  986. {    uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
  987.     VFLG = CFLG = 0;
  988.     ZFLG = ((uae_s32)(newv)) == 0;
  989.     NFLG = ((uae_s32)(newv)) < 0;
  990.     m68k_dreg(regs, dstreg) = (newv);
  991. }}}}}}
  992. void REGPARAM2 CPU_OP_NAME(_c1f8)(uae_u32 opcode) /* MULS */
  993. {
  994.     uae_u32 dstreg = (opcode >> 9) & 7;
  995. {{    uaecptr srca = (uae_s32)(uae_s16)nextiword();
  996.     uae_s16 src = get_word(srca);
  997. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  998. {    uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
  999.     VFLG = CFLG = 0;
  1000.     ZFLG = ((uae_s32)(newv)) == 0;
  1001.     NFLG = ((uae_s32)(newv)) < 0;
  1002.     m68k_dreg(regs, dstreg) = (newv);
  1003. }}}}}
  1004. void REGPARAM2 CPU_OP_NAME(_c1f9)(uae_u32 opcode) /* MULS */
  1005. {
  1006.     uae_u32 dstreg = (opcode >> 9) & 7;
  1007. {{    uaecptr srca = nextilong();
  1008.     uae_s16 src = get_word(srca);
  1009. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  1010. {    uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
  1011.     VFLG = CFLG = 0;
  1012.     ZFLG = ((uae_s32)(newv)) == 0;
  1013.     NFLG = ((uae_s32)(newv)) < 0;
  1014.     m68k_dreg(regs, dstreg) = (newv);
  1015. }}}}}
  1016. void REGPARAM2 CPU_OP_NAME(_c1fa)(uae_u32 opcode) /* MULS */
  1017. {
  1018.     uae_u32 dstreg = (opcode >> 9) & 7;
  1019. {{    uaecptr srca = m68k_getpc();
  1020.     srca += (uae_s32)(uae_s16)nextiword();
  1021. {    uae_s16 src = get_word(srca);
  1022. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  1023. {    uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
  1024.     VFLG = CFLG = 0;
  1025.     ZFLG = ((uae_s32)(newv)) == 0;
  1026.     NFLG = ((uae_s32)(newv)) < 0;
  1027.     m68k_dreg(regs, dstreg) = (newv);
  1028. }}}}}}
  1029. void REGPARAM2 CPU_OP_NAME(_c1fb)(uae_u32 opcode) /* MULS */
  1030. {
  1031.     uae_u32 dstreg = (opcode >> 9) & 7;
  1032. {{    uaecptr srca = get_disp_ea(m68k_getpc());
  1033. {    uae_s16 src = get_word(srca);
  1034. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  1035. {    uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
  1036.     VFLG = CFLG = 0;
  1037.     ZFLG = ((uae_s32)(newv)) == 0;
  1038.     NFLG = ((uae_s32)(newv)) < 0;
  1039.     m68k_dreg(regs, dstreg) = (newv);
  1040. }}}}}}
  1041. void REGPARAM2 CPU_OP_NAME(_c1fc)(uae_u32 opcode) /* MULS */
  1042. {
  1043.     uae_u32 dstreg = (opcode >> 9) & 7;
  1044. {{    uae_s16 src = nextiword();
  1045. {    uae_s16 dst = m68k_dreg(regs, dstreg);
  1046. {    uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
  1047.     VFLG = CFLG = 0;
  1048.     ZFLG = ((uae_s32)(newv)) == 0;
  1049.     NFLG = ((uae_s32)(newv)) < 0;
  1050.     m68k_dreg(regs, dstreg) = (newv);
  1051. }}}}}
  1052. #endif
  1053.